In various situations in telephone communications, it is desirable that, after a caller initiates a call, an announcement is made to notify the caller, for example, the status of the call, the charge that might incur to the caller, etc. In one approach, the announcement system defines a call type and a specific announcement for each subscriber so that such an announcement may be made when appropriate. Unfortunately, when numerous subscribers are involved, provisioning for every subscriber results in managing huge amounts of data. For example, each time a call type is added, data for up to millions of subscribers related to the new call type must be updated. Such process is also tedious, error prone, and expensive. Therefore, what is needed is mechanisms to solve the above deficiencies and related problems.